home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Contributed / SpriteWorld / SpriteWorld Files / BlitPixie / Assembler / 68K / BlitPixieRLE.a < prev    next >
Encoding:
Text File  |  2000-10-06  |  6.4 KB  |  257 lines  |  [TEXT/MPS ]

  1. ; DO NOT EDIT (OR EVEN READ) THIS FILE!
  2. ; BlitPixieRLE.a (for Asm), auto-generated from BlitPixieRLE.c
  3.  
  4.     INCLUDE    'AsmGlobal.a'
  5.  
  6.     PROC
  7.  
  8.     EXPORT BlitPixieRLE 
  9. BlitPixieRLE:
  10.     link      a6,#0
  11.     move.l    a2,-(a7)
  12.     movea.l   8(a6),a0
  13.     movea.l   12(a6),a1
  14.     movea.l   a1,a2
  15.     move.l    16(a6),d2
  16.     clr.l     d1
  17.     move.l    (a0)+,d0
  18.     move.l    d0,d1
  19.     rol.l     #8,d0
  20.     andi.l    #$ffffff,d1
  21.     cmpi.b    #2,d0
  22.     bne.s     *+76           ; $00000072
  23.     move.w    d1,d0
  24.     lsr.w     #4,d0
  25.     beq.s     *+16           ; $0000003c
  26.     subq.w    #1,d0
  27.     move.l    (a0)+,(a1)+
  28.     move.l    (a0)+,(a1)+
  29.     move.l    (a0)+,(a1)+
  30.     move.l    (a0)+,(a1)+
  31.     dbra      d0,*-8         ; $00000030
  32.     move.w    d1,d0
  33.     andi.w    #$8,d0
  34.     beq.s     *+6            ; $00000048
  35.     move.l    (a0)+,(a1)+
  36.     move.l    (a0)+,(a1)+
  37.     move.w    d1,d0
  38.     andi.w    #$4,d0
  39.     beq.s     *+4            ; $00000052
  40.     move.l    (a0)+,(a1)+
  41.     move.w    d1,d0
  42.     andi.w    #$2,d0
  43.     beq.s     *+4            ; $0000005c
  44.     move.w    (a0)+,(a1)+
  45.     move.w    d1,d0
  46.     andi.w    #$1,d0
  47.     beq.s     *+4            ; $00000066
  48.     move.b    (a0)+,(a1)+
  49.     move.l    a0,d0
  50.     addq.l    #3,d0
  51.     andi.w    #$fffc,d0
  52.     movea.l   d0,a0
  53.     bra.s     *-90           ; $00000016
  54.     cmpi.b    #3,d0
  55.     bne.s     *+6            ; $0000007c
  56.     adda.l    d1,a1
  57.     bra.s     *-100          ; $00000016
  58.     cmpi.b    #4,d0
  59.     bne.s     *+70           ; $000000c6
  60.     move.w    d1,d0
  61.     lsr.w     #4,d0
  62.     beq.s     *+16           ; $00000096
  63.     subq.w    #1,d0
  64.     move.l    (a0),(a1)+
  65.     move.l    (a0),(a1)+
  66.     move.l    (a0),(a1)+
  67.     move.l    (a0),(a1)+
  68.     dbra      d0,*-8         ; $0000008a
  69.     move.w    d1,d0
  70.     andi.w    #$8,d0
  71.     beq.s     *+6            ; $000000a2
  72.     move.l    (a0),(a1)+
  73.     move.l    (a0),(a1)+
  74.     move.w    d1,d0
  75.     andi.w    #$4,d0
  76.     beq.s     *+4            ; $000000ac
  77.     move.l    (a0),(a1)+
  78.     move.w    d1,d0
  79.     andi.w    #$2,d0
  80.     beq.s     *+4            ; $000000b6
  81.     move.w    (a0),(a1)+
  82.     move.w    d1,d0
  83.     andi.w    #$1,d0
  84.     beq.s     *+4            ; $000000c0
  85.     move.b    (a0),(a1)+
  86.     addq.l    #4,a0
  87.     bra.w     *-172          ; $00000016
  88.     cmpi.b    #1,d0
  89.     bne.s     *+10           ; $000000d4
  90.     movea.l   a2,a1
  91.     adda.l    d2,a2
  92.     bra.w     *-186          ; $00000016
  93.     cmpi.b    #0,d0
  94.     movea.l   (a7)+,a2
  95.     unlk      a6
  96.     rts
  97.  
  98.     EXPORT BlitPixieRLEClipped 
  99. BlitPixieRLEClipped:
  100.     link      a6,#0
  101.     movem.l   d3-d6/a2-a3,-(a7)
  102.     movea.l   8(a6),a0
  103.     movea.l   12(a6),a1
  104.     movea.l   a1,a2
  105.     move.l    16(a6),d2
  106.     movea.l   20(a6),a3
  107.     moveq     #0,d4
  108.     clr.l     d1
  109.     clr.l     d6
  110.     move.l    (a0)+,d0
  111.     move.l    d0,d1
  112.     rol.l     #8,d0
  113.     andi.l    #$ffffff,d1
  114.     cmpi.b    #2,d0
  115.     bne.w     *+152          ; $000000c8
  116.     move.w    d3,d0
  117.     add.w     d1,d0
  118.     subq.w    #1,d0
  119.     cmp.w     2(a3),d3
  120.     bge.s     *+30           ; $0000005c
  121.     cmp.w     2(a3),d0
  122.     bgt.s     *+10           ; $0000004e
  123.     adda.l    d1,a0
  124.     adda.l    d1,a1
  125.     add.w     d1,d3
  126.     bra.s     *+110          ; $000000ba
  127.     move.w    2(a3),d6
  128.     sub.w     d3,d6
  129.     sub.w     d6,d1
  130.     adda.l    d6,a0
  131.     adda.l    d6,a1
  132.     add.w     d6,d3
  133.     moveq     #0,d6
  134.     cmp.w     6(a3),d0
  135.     blt.s     *+18           ; $00000074
  136.     cmp.w     6(a3),d3
  137.     blt.s     *+4            ; $0000006c
  138.     bra.s     *-36           ; $00000046
  139.     move.w    d0,d6
  140.     sub.w     6(a3),d6
  141.     sub.w     d6,d1
  142.     move.w    d1,d0
  143.     lsr.w     #4,d0
  144.     beq.s     *+16           ; $00000088
  145.     subq.w    #1,d0
  146.     move.l    (a0)+,(a1)+
  147.     move.l    (a0)+,(a1)+
  148.     move.l    (a0)+,(a1)+
  149.     move.l    (a0)+,(a1)+
  150.     dbra      d0,*-8         ; $0000007c
  151.     move.w    d1,d0
  152.     andi.w    #$8,d0
  153.     beq.s     *+6            ; $00000094
  154.     move.l    (a0)+,(a1)+
  155.     move.l    (a0)+,(a1)+
  156.     move.w    d1,d0
  157.     andi.w    #$4,d0
  158.     beq.s     *+4            ; $0000009e
  159.     move.l    (a0)+,(a1)+
  160.     move.w    d1,d0
  161.     andi.w    #$2,d0
  162.     beq.s     *+4            ; $000000a8
  163.     move.w    (a0)+,(a1)+
  164.     move.w    d1,d0
  165.     andi.w    #$1,d0
  166.     beq.s     *+4            ; $000000b2
  167.     move.b    (a0)+,(a1)+
  168.     add.w     d1,d3
  169.     adda.l    d6,a0
  170.     adda.l    d6,a1
  171.     add.w     d6,d3
  172.     move.l    a0,d0
  173.     addq.l    #3,d0
  174.     andi.w    #$fffc,d0
  175.     movea.l   d0,a0
  176.     bra.w     *-164          ; $00000020
  177.     cmpi.b    #3,d0
  178.     bne.s     *+10           ; $000000d6
  179.     adda.l    d1,a1
  180.     add.w     d1,d3
  181.     bra.w     *-178          ; $00000020
  182.     cmpi.b    #4,d0
  183.     bne.w     *+142          ; $00000168
  184.     move.w    d3,d0
  185.     add.w     d1,d0
  186.     subq.w    #1,d0
  187.     cmp.w     2(a3),d3
  188.     bge.s     *+30           ; $00000106
  189.     cmp.w     2(a3),d0
  190.     bgt.s     *+12           ; $000000fa
  191.     adda.l    d1,a1
  192.     add.w     d1,d3
  193.     addq.l    #4,a0
  194.     bra.w     *-214          ; $00000020
  195.     move.w    2(a3),d6
  196.     sub.w     d3,d6
  197.     sub.w     d6,d1
  198.     adda.l    d6,a1
  199.     add.w     d6,d3
  200.     moveq     #0,d6
  201.     cmp.w     6(a3),d0
  202.     blt.s     *+18           ; $0000011e
  203.     cmp.w     6(a3),d3
  204.     blt.s     *+4            ; $00000116
  205.     bra.s     *-36           ; $000000f0
  206.     move.w    d0,d6
  207.     sub.w     6(a3),d6
  208.     sub.w     d6,d1
  209.     move.w    d1,d0
  210.     lsr.w     #4,d0
  211.     beq.s     *+16           ; $00000132
  212.     subq.w    #1,d0
  213.     move.l    (a0),(a1)+
  214.     move.l    (a0),(a1)+
  215.     move.l    (a0),(a1)+
  216.     move.l    (a0),(a1)+
  217.     dbra      d0,*-8         ; $00000126
  218.     move.w    d1,d0
  219.     andi.w    #$8,d0
  220.     beq.s     *+6            ; $0000013e
  221.     move.l    (a0),(a1)+
  222.     move.l    (a0),(a1)+
  223.     move.w    d1,d0
  224.     andi.w    #$4,d0
  225.     beq.s     *+4            ; $00000148
  226.     move.l    (a0),(a1)+
  227.     move.w    d1,d0
  228.     andi.w    #$2,d0
  229.     beq.s     *+4            ; $00000152
  230.     move.w    (a0),(a1)+
  231.     move.w    d1,d0
  232.     andi.w    #$1,d0
  233.     beq.s     *+4            ; $0000015c
  234.     move.b    (a0),(a1)+
  235.     add.w     d1,d3
  236.     adda.l    d6,a1
  237.     add.w     d6,d3
  238.     addq.l    #4,a0
  239.     bra.w     *-324          ; $00000020
  240.     cmpi.b    #1,d0
  241.     bne.s     *+26           ; $00000186
  242.     cmp.w     (a3),d4
  243.     bge.s     *+4            ; $00000174
  244.     adda.l    d1,a0
  245.     cmp.w     4(a3),d4
  246.     bge.s     *+18           ; $0000018a
  247.     moveq     #0,d3
  248.     addq.w    #1,d4
  249.     movea.l   a2,a1
  250.     adda.l    d2,a2
  251.     bra.w     *-354          ; $00000020
  252.     cmpi.b    #0,d0
  253.     movem.l   (a7)+,d3-d6/a2-a3
  254.     unlk      a6
  255.     rts
  256.     END
  257.